12 research outputs found
Proving Termination of C Programs with Lists
There are many techniques and tools to prove termination of C programs, but
up to now these tools were not very powerful for fully automated termination
proofs of programs whose termination depends on recursive data structures like
lists. We present the first approach that extends powerful techniques for
termination analysis of C programs (with memory allocation and explicit pointer
arithmetic) to lists.Comment: Full version of a paper which appeared in the Proceedings of CADE
202
Automated Termination Proofs for C Programs with Lists (Short WST Version)
There are many techniques and tools for termination of C programs, but up to
now they were not very powerful for termination proofs of programs whose
termination depends on recursive data structures like lists. We present the
first approach that extends powerful techniques for termination analysis of C
programs (with memory allocation and explicit pointer arithmetic) to lists.Comment: Presented at WST 2023, short version of arXiv:2305.1215
Inferring Lower Bounds for Runtime Complexity
We present the first approach to deduce lower bounds for innermost runtime complexity of term rewrite systems (TRSs) automatically. Inferring lower runtime bounds is useful to detect bugs and to complement existing techniques that compute upper complexity
bounds. The key idea of our approach is to generate suitable families of rewrite sequences of a TRS and to find a relation between the length of such a rewrite sequence and the size of the first term in the sequence. We implemented our approach in
the tool AProVE and evaluated it by extensive experiments
Automatically proving termination and memory safety for programs with pointer arithmetic
While automated verification of imperative programs has been studied intensively, proving termination of programs with explicit pointer arithmetic fully automatically was still an open problem. To close this gap, we introduce a novel abstract domain that can track allocated memory in detail. We use it to automatically construct a symbolic execution graph that over-approximates all possible runs of a program and that can be used to prove memory safety. This graph is then transformed into an integer transition system, whose termination can be proved by standard techniques. We implemented this approach in the automated termination prover AProVE and demonstrate its capability of analyzing C programs with pointer arithmetic that existing tools cannot handle
Analyzing program termination and complexity automatically with AProVE
In this system description, we present the tool AProVE for automatic termination and complexity proofs of Java, C, Haskell, Prolog, and rewrite systems. In addition to classical term rewrite systems (TRSs), AProVE also supports rewrite systems containing built-in integers (int-TRSs). To analyze programs in high-level languages, AProVE automatically converts them to (int-)TRSs. Then, a wide range of techniques is employed to prove termination and to infer complexity bounds for the resulting rewrite systems. The generated proofs can be exported to check their correctness using automatic certifiers. To use AProVE in software construction, we present a corresponding plug-in for the popular Eclipse software development environment
Homology modelling and active-site-mutagenesis study of the catalytic domain of the pneumococcal phosphorylcholine esterase
Streptococcus pneumoniae is among the major human pathogens. Several interactions of this bacterium with its host appear to have been mediated by bacterial cell wall components. Specifically, phosphorylcholine residues covalently attached to teichoic and lipoteichoic acids serve as anchors for many surface-located proteins (choline-binding proteins CBPs), including cell-adhesion and virulence factors, and are also recognized by host response components through choline-binding receptors. In this study, we have performed modelling of the catalytic domain of pneumococcal phosphorylcholine esterase (Pce), a modular enzyme that is capable of removing phosphorycholine residues from teichoic and lipoteichoic acids, remodelling their distribution on the bacterial envelope. We wish to contribute to the structural knowledge of Pce. In this pursuit, 3D models of Pce have been established by homology modelling, using the X-ray structure of enzymes from the α/β metallo-lactamase family fold as templates. Theoretical models of pneumococcal phosphorylcholine esterase (Pce) catalytic modules obtained by homology modelling, and corresponding docking studies employed to find out the residues involved in the binding of Zn ions, are discussed according to mutational studies and ab initio calculations. The presence of a binuclear Zn cluster in the catalytic domain of Pce and a likely coordination model are proposed. © 2005 Elsevier Ltd. All rights reserved.Peer Reviewe